The Internet is a world wide “super-network” which connects together millions of individual computer networks and computers. The Internet is generally not a single entity. It is an extremely diffuse and complex system over where no single entity has complete authority or control. Although the Internet is widely know for one of its ways of presenting information through the World Wide Web (herein “Web”), there are many other services currently available based upon the general Internet protocols and infrastructure.
The Web is often easy to use for people inexperienced with computers. Information on the Web often is presented on “pages” of graphics and text that contain “links” to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a “browser” program such as one made by Netscape Communications Corporation (now America Online, Inc.) of Mountain View, Calif. or Explorer™ from Microsoft Corporation of Redmond, Wash. Browser programs can process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
As time progressed, usage of the Internet has exploded. There are literally millions of users on the Internet. Usage of the Internet is increasing daily and will eventually be in the billions of users. As usage increases so does traffic on the Internet. Traffic generally refers to the transfer of information from a Web site at a server computer to a user at a client computer. The traffic generally travels through the worldwide network of computers using a packetized communication protocol, such as TCP/IP. Tiny packets of information travel from the server computer through the network to the client computer.
Like automobiles during “rush hour” on Highway 101 in Silicon Valley, the tiny packets of information traveling through the Internet become congested. Here, traffic jams which cause a delay in the information from the server to the client occur during high usage hours on the Internet. These traffic jams lead to long wait times at the client location. Here, a user of the client computer may wait for a long time for a graphical object to load onto his/her computer.
A user of a Web browser may request content, such as a Web page, by submitting to the Web browser a Uniform Resource Locator (URL) that identifies the requested content. The submitted URL includes a host name (e.g., www.customer.com). While Web servers use IP addresses to identify one another, it is easier for humans to use a host name to identify a Web server, as a host name is usually expressed in words and/or characters, as opposed to a string of numbers as in an IP address.
After a user submits a URL to a Web browser, the Web browser determines the IP address associated with the host name that can provide the requested content by transmitting, to a client domain name server, a request to resolve the host name entry contained within the URL. For example, the request to resolve the host name entry may be implemented by using the gethostbyname function of the Windows Sockets 2 protocol. After the Web browser receives the IP address of the host name identified in the URL from the client domain name server, the Web browser transmits a content request to the Web server associated with the newly obtained IP address to obtain the requested content.
The client domain name server obtains the IP address of the host name by issuing a domain name resolution request to one or more entities, such as a root domain name server. A domain name resolution request is a request to translate a domain name into an IP address associated with a Web server. Load-balancing techniques may be employed when resolving the domain name resolution request to minimize the amount of time spent processing content requests from the client issuing the domain name resolution request. Load-balancing involves distributing processing and communications activity evenly across a network so that no single component in the network is overwhelmed. For example, Web sites that receive large amounts of traffic often employ two or more Web servers in a load-balancing scheme. If one Web server becomes overloaded, requests may be forwarded to another Web server with more capacity.
Load-balancing may be performed within a particular point of presence (POP). A POP refers to one or more Web servers and associated components, typically operating as a functional unit, that are each capable of serving content across the WWW. A Web site may be implemented using several POPs, each operating in a different geographical location, to increase the likelihood that a Web browser requesting content from the Web site is in close network proximity to a POP of that Web site. When load-balancing is performed within a particular POP, it is referred to as local load-balancing. When load-balancing is performed across multiple POPs, it is referred to as global load-balancing.
An improved way to transfer information over a network is highly desirable. It would be advantageous to provide content delivery and global traffic management network system that allows network traffic to be efficiently distributed to content servers in any POP using global and local load-balancing techniques without incurring the disadvantages of the approaches discussed above. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.